




Dieser Anhang enthält eine kurze alphabetisch geordnete Referenz der vordefinierten Perl-Funktionen. Wenn Sie eine Funktion suchen, die es nicht gibt, verzagen Sie nicht. Ihre Chancen stehen trotzdem gut, dass irgend jemand ein Modul geschrieben hat, das eine Funktion, wie Sie sie benötigen, enthält. Eine Liste der wichtigsten verfügbaren Perl-Module finden Sie in Anhang B.
Beachten Sie, dass nicht alle Funktionen, die in diesem Anhang aufgeführt sind, von allen Perl-Versionen unterstützt werden. Dem Kapitel 18, »Perl und das Betriebssystem«, können Sie entnehmen, welche Funktionen für Windows- oder Macintosh-Rechner nicht zur Verfügung stehen. Als ultimative Referenz sollten Sie die Dokumentation zu Ihrem Perl-Port zu Rate ziehen.
Weitere Informationen zu den jeweiligen Funktionen finden Sie in der perlfunc-
Manpage. Wie alle Perl-Dokumentationen können Sie diese Manpage unter Unix mit
dem Befehl man, unter Unix und Windows mit dem Befehl perldoc (perldoc perlfunc
zeigt die ganze Liste und perldoc -f die einzelnen Funktionen) und auf dem Mac mit
der Shuck-Anwendung aufrufen.
Die gesamte Perl-Dokumentation ist auch über das Web unter http://www.perl.com/
CPAN-local/doc/manual/html/pod/ abrufbar.
Neben den Perl-spezifischen Manpages verweist dieser Anhang auch häufig auf
andere Unix-Manpages (vornehmlich deshalb, weil Perl oft von Unix-Features
Gebrauch macht). Die Unix-Manpages sind in numerierten Kapiteln zusammengefaßt.
Wenn Sie auf ein Element stoßen, hinter dem eine Zahl in Klammern steht, weist
diese Zahl darauf, dass dieses Element in dem entsprechenden Kapitel der Manpages
beschrieben ist. So finden Sie zum Beispiel fseek(2) in Kapitel 2 des Unix-
Handbuches. Um die Funktion fseek in Kapitel 2 nachzuschlagen, würden Sie also
folgenden Unix-Befehl eingeben:
man 2 fseek
Auf manchen Systemen lautet der Befehl ein wenig anders:
man -s 2 fseek
Der Befehl man man zeigt Ihnen Hilfe zu dem Befehl man an.
Hier finden Sie die Perl-Funktionen in alphabetischer Reihenfolge.
abs WERT
Liefert den absoluten Wert von WERT zurück. WERT kann eine Zahl (wie -7) oder ein
Ausdruck sein.
accept NEUERSOCKET, GENERISCHERSOCKET
accept wird verwendet, um eine einkommende Socket-Verbindung anzunehmen.
Wenn eine Verbindung hergestellt wurde, wird die gepackte Adresse zurückgeliefert.
Andernfalls lautet der Rückgabewert falsch. Entspricht dem Systemaufruf accept(2).
alarm SEKUNDEN
Die alarm-Funktion sendet ein SIGALRM an das Programm, nachdem die in SEKUNDEN
spezifizierten Sekunden verstrichen sind. Es kann nur ein Alarm aktiv sein. Wenn Sie
diese Funktion aufrufen, während noch ein anderer Alarm läuft, wird der laufende
Alarm durch den aktuelleren Aufruf ersetzt. Wenn Sie die Funktion mit dem
Argument 0 aufrufen, wird der aktuelle Alarm unterbrochen, ohne dass ein neuer
gestartet wird. Wird für SEKUNDEN keine Zahl angegeben, wird der Wert in $_
verwendet.
atan2 Y, X
Liefert den Arkustangens von X/Y in dem Bereich von -p bis p zurück. Weitere
Funktionen für die Tangensoperationen gibt es in den Modulen POSIX und
Math::Trig.
bind SOCKET, NAME
Die Funktion bind bindet eine Netzwerkadresse an einen Socket. NAME sollte dabei die
gepackte Adresse für verwendete Art von Socket enthalten. Ist die Funktion bind
erfolgreich, wird wahr zurückgeliefert, andernfalls falsch. Entspricht dem Systemaufruf
bind.
binmode DATEIHANDLE
binmode übernimmt als Argument ein Datei-Handle und gibt an, dass die Daten im
Binärformat (und nicht im ASCII-Format) in das Datei-Handle geschrieben
(beziehungsweise daraus gelesen) werden sollen. Unter Unix hat diese Funktion keine
Auswirkung, aber für MS-DOS und andere archaische Plattformen ist sie wichtig. Die
Funktion sollte nach dem Öffnen einer Datei und vor irgendwelchen Eingabe-/
Ausgabeoperationen auf diese Datei aufgerufen werden.
bless REFERENZ, KLASSENNAME
bless wird in der objektorientierten Perl-Programmierung verwendet, um das, was
mit REFERENZ referenziert wird, dem Paket KLASSENNAME zuzuweisen. Wird
KLASSENNAME fortgelassen, wird REFERENZ dem aktuellen Paket zugewiesen. bless
liefert die Referenz zurück, die mit bless zugewiesen wird. Detailliertere
Informationen finden Sie in der perlobj-Manpage.
caller AUSDRUCK
caller
caller liefert den Kontext des aktuellen Subroutinenaufrufs zurück. In einem skalaren
Kontext liefert caller den Namen des Pakets, aus dem die Subroutine aufgerufen
wurde, in einem Listenkontext liefert sie den Paketnamen, den Dateinamen des
Programms und die Zeilennummer des Aufrufs. Wenn ein AUSDRUCK mit angegeben
wird, liefert caller zusätzliche Informationen zur Verfolgung des Stacks. AUSDRUCK
gibt an, um wie viele Aufruf-Frames der Stack, ausgehend vom aktuellen Frame,
zurückgegangen werden muss. Wird AUSDRUCK angegeben, wird die folgende Liste an
Werten zurückgegeben:
($package, $file, $line, $subname, $hasargs, $wantarray) = caller(bel_funk);
chdir AUSDRUCK
chdir übernimmt einen Ausdruck als Argument und versucht, das aktuelle Verzeichnis
auf das im Ausdruck angegebene Verzeichnis zu setzen. Wird kein Argument
mitgeliefert, versucht die Funktion, in das Home-Verzeichnis des aktuellen Benutzers
zu wechseln.
chmod LISTE
chmod dient dazu, die Zugriffsberechtigungen für die im Argument LISTE aufgeführten
Dateien zu ändern. Das erste Element in LISTE muss - in Oktalnotation - der
numerische Modus für die Dateien sein. Er sollte auch das SUID-Bit mit einschließen.
Sehen Sie hier ein Beispiel für die Anwendung von chmod:
chmod 0755, @dateien;
Beachten Sie, dass das erste Element der Liste nicht in Anführungszeichen steht. Es ist einfach nur eine Zahl. Weitere Informationen zu den Datei-Zugriffsrechten finden Sie in der chmod-Manpage.
chomp VARIABLE
chomp LISTE
chomp
chomp ist die sichere Version von chop, die als nächstes beschrieben wird. Die
Funktion entfernt alle Zeilenenden, die mit $/ übereinstimmen (die Variable, die das
Eingabedatensatz-Trennzeichen, normalerweise ein Neue-Zeile-Zeichen, enthält).
Wenn diese Funktion im Absatzmodus aufgerufen wird, werden alle angehängten
Neue-Zeile-Zeichen aus dem String entfernt.
chop VARIABLE
chop LISTE
chop
chop wird verwendet, um das letzte Zeichen in einem String zu entfernen. Ihre
ursprüngliche Aufgabe bestand darin, das Zeilenvorschubzeichen am Ende einer Zeile
möglichst problemlos zu entfernen (wenn Sie eine Datei Zeile für Zeile bearbeiten, ist
es oft sinnvoll, das Zeilenvorschubzeichen aus den Zeilen zu entfernen, bevor Sie mit
der Arbeit beginnen). Das Problem mit chop ist, dass die Funktion jedes letzte Zeichen
vom String entfernt. Ist das letzte Zeichen ein Zeilenvorschubzeichen - wunderbar.
Aber wenn nicht, verlieren Sie das letzte Zeichen, das durchaus eine Bedeutung haben
kann.
while (<EINGABEDATEI>) {
# Beachten Sie, dass in diesem Beispiel $_ als Argument für die
# chop-Funktion verwendet wird.
chop;
push (@names);
}
Wird chop ohne Argument verwendet, wird das letzte Zeichen von $_ entfernt. Wird
eine Liste übergeben, wird aus allen Elementen der Liste das jeweils letzte Zeichen
entfernt.
chown LISTE
chown wird verwendet, um die Besitzrechte der Dateien, die in LISTE stehen, für
Benutzer und Gruppe zu setzen. Zurückgeliefert wird die Anzahl der Dateien, für die
die Besitzrechte erfolgreich geändert wurden. Die ersten beiden Elemente von LISTE
müssen die numerische UID und GID des Benutzers und der Gruppe sein, die Besitzer
der Dateien werden. Normalerweise kann nur der root-Benutzer die Besitzrechte von
Dateien in einem System ändern.
chr ZAHL
Die Funktion chr liefert das Zeichen aus der ASCII-Tabelle zurück, das dem
Zahlencode entspricht, der der Funktion übergeben wurde. So liefert zum Beispiel
chr(80) ein R zurück. Mit der Funktion pack können mehrere Zeichen gleichzeitig
konvertiert werden.
chroot VERZEICHNISNAME
Die Funktion chroot ist identisch mit dem gleichnamigen Systemaufruf (Details sind
der Manpage chroot(2) zu entnehmen). Im wesentlichen teilt chroot dem gerade
ausführenden Programm sowie allen exec-Aufrufen und Subprozessen mit, dass das in
VERZEICHNISNAME angegebene Verzeichnis als neues Root-Verzeichnis zu verwenden
ist. Pfade, die mit / anfangen, beginnen danach mit dem Verzeichnis
VERZEICHNISNAME und nicht mehr mit dem eigentlichen Root-Verzeichnis des
Dateisystems. Nur der root-Benutzer kann die Funktion chroot verwenden.
close DATEIHANDLE
Die Funktion close wird verwendet, um ein zuvor geöffnetes Datei-Handle zu
schließen (unabhängig davon, ob es sich um eine Datei oder eine Pipe handelt). Sie
führt die notwendigen Aufräumarbeiten auf der Systemebene durch und liefert wahr
zurück, wenn alle Operationen erfolgreich waren. Beachten Sie, dass alle Datei-
Handle automatisch geschlossen werden, wenn ein Perl-Programm beendet wird, so
dass Sie oft davonkommen, ohne explizit alle Datei-Handle zu schließen, die Sie
geöffnet haben.
closedir VERZEICHNISHANDLE
closedir schließt ein Verzeichnis, das mit der Funktion opendir geöffnet wurde.
connect SOCKET, NAME
connect versucht, eine Verbindung zu einem entfernten Socket herzustellen. NAME
sollte die gepackte Adresse entsprechend dem Typ des Sockets enthalten. Die
Funktion liefert wahr zurück, wenn sie erfolgreich war, im anderen Fall falsch. Diese
Funktion ist identisch mit dem Systemaufruf connect.
cos AUSDRUCK
Liefert den Kosinus von AUSDRUCK zurück. Für die inverse Kosinusoperation
sollten Sie die Funktion POSIX::acos() oder das Modul Math::Trig verwenden.
crypt NORMALERTEXT, WERT
Die crypt-Funktion wird dazu verwendet, um Strings auf die gleiche Weise zu
verschlüsseln, wie Paßwörter in einer Unix-Paßwortdatei gespeichert werden. Die
Funktion übernimmt zwei Argumente: den String, der verschlüsselt werden soll, und
einen Wert, mit dem der Verschlüsselungsalgorithmus initialisiert wird. Die crypt-
Funktion ist eine Einbahnstraße: Es ist keine Methode bekannt, mit der man Text, der
mit crypt verschlüsselt wurde, wieder entschlüsseln kann (Unix testet Paßwörter,
indem crypt auf die vom Benutzer eingegebenen Paßwörter angewendet und das
Ergebnis dann mit den verschlüsselten Paßwörtern in /etc/passwd verglichen wird).
dbmclose HASH
dbmclose löst die Bindung zwischen einem HASH und der DBM-Datei, mir der er
verbunden ist. Diese Funktion wurde inzwischen durch die Funktion untie ersetzt.
dbmopen HASH, DBNAME, MODUS
dbmopen bindet eine dbm, ndbm, sdbm, gdmb oder Berkeley-DB-Datei an einen Hash.
HASH ist der Name der Hash-Variablen, an die die Datenbank gebunden wird, und
DBNAME der Name der Datenbankdatei ohne die Extension. Wenn DBNAME nicht
angegeben wird, wird eine neue Datei erzeugt, deren Zugriffsberechtigungen durch
MODUS spezifiziert werden.
Diese Funktion wurde inzwischen durch tie abgelöst.
defined AUSDRUCK
defined wird verwendet, um Ausdrücke zu identifizieren, die den undefinierten Wert
(im Gegensatz zu 0, Neue Zeile oder einen anderen leeren Rückgabewert)
zurückliefern. Mit Hilfe der Funktion kann man festzustellen, ob eine Subroutine
existiert oder eine Skalarvariable definiert wurde. Wenn kein AUSDRUCK übergeben
wird, prüft defined, ob $_ undefiniert ist.
delete AUSDRUCK
Die delete-Funktion wird verwendet, um Elemente aus einem Hash zu entfernen.
Dabei gehen Sie so vor, dass Sie der Funktion einfach den Namen des Hash und den
Schlüssel, der entfernt werden soll, übergeben. Sehen Sie dazu folgendes Beispiel:
delete $hash{$key};
Da Sie nur ein einziges Element im Hash löschen wollen, referenzieren Sie die Hash-
Variable im skalaren Kontext (mit $).
die LISTE
die übernimmt eine Liste als Argument. Wenn die aufgerufen wird, wird das
Programm beendet, der Wert von $! zurückgeliefert und die als Argument an die
übergebene Liste auf die Standardfehlerausgabe geschickt. Wenn die Liste nicht mit
einem Neue-Zeile-Zeichen endet, werden der Name des Programms und die
Zeilennummer der Zeile, bei der die Ausführung unterbrochen wurde, zusammen mit
einem Neue-Zeile-Zeichen an die Ausgabe der Funktion angehängt.
open (FILE, $datei) or die "$datei kann nicht geöffnet werden";
Wenn $datei nicht geöffnet werden kann, erzeugt diese Zeile folgende Ausgabe:
/tmp/datei kann nicht geöffnet werden at test_program line 13.
do BLOCK
do SUBROUTINE(LISTE)
do AUSDRUCK
Wenn diese Funktion mit einem Codeblock in BLOCK aufgerufen wird, führt do die
Anweisungen in dem Block aus und liefert den Wert der letzten Anweisung in dem
Block zurück. Wenn do zusammen mit einem Schleifenausdruck verwendet wird, wird
BLOCK ausgeführt, bevor die Schleifenbedingung das erste Mal getestet wird.
do SUBROUTINE ist eine veraltete Methode, um eine Subroutine aufzurufen, und do
AUSDRUCK stellt eine Möglichkeit dar, Code in einer anderen Datei auszuführen.
AUSDRUCK wird in diesem Falle als der Dateiname einer Perl-Datei interpretiert, deren
Inhalt ausgeführt wird. Auch wenn sich do auf diese Weise einsetzen läßt, sollten Sie
trotzdem auf require und use ausweichen, die robuster sind.
dump LABEL
Mit dump bewirken Sie, dass Perl einen Speicherauszug (dump) des Programms
ausgibt. Anschließend können Sie mit dem undump-Programm eine binäre Datei
erzeugen, die die Ausführung mit einem goto LABEL-Befehl beginnt.
each HASH
Die each-Funktion wird verwendet, um Werte für die Verarbeitung in einer Schleife
aus einem Hash herauszuholen. Sie verhält sich je nach Kontext (skalar oder Liste)
unterschiedlich.
Im skalaren Kontext liefert die each-Funktion den Schlüssel für das nächste Element
im Hash zurück. Sie läßt sich daher folgendermaßen anwenden:
while ($key = each %hash) {
$hash{$key}++;
}
Im anderen Falle, das heißt in einem Listenkontext, liefert die each-Funktion eine
zweielementige Liste, die den Schlüssel und den Wert für das nächste Element im
Hash enthält. Das sieht dann wie folgt aus:
while (($key, $value) = each %hash) {
print "$key = $value\n";
}
eof DATEIHANDLE
eof ()
eof
Die eof-Funktion liefert 1 zurück, wenn beim nächsten Lesen aus DATEIHANDLE die
Dateiendemarke zurückgeliefert wird oder DATEIHANDLE nicht geöffnet ist. Ohne
Argument wertet eof die zuletzt gelesene Datei aus. Erfolgt der Aufruf mit leeren
Klammern als Argument, erkennt eof das Ende einer Pseudodatei, die aus all den
Dateien besteht, die auf der Befehlszeile angegeben wurden. In der perlfunc-
Manpage wird klugerweise darauf hingewiesen, dass eof selten verwendet wird, da
Perl automatisch den undefinierten Wert zurückliefert, wenn das Ende einer Datei
erreicht ist - so dass das Dateiende auch bequem ohne diese Funktion entdeckt
werden kann.
eval AUSDRUCK
eval wird verwendet, um einen Ausdruck oder einen Codeblock auszuführen, als ob
es sich um ein eigenständiges Perl-Programm handelte. Es wird im Kontext des
gerade laufenden Perl-Programms ausgeführt, so dass alle Variablen und anderen
persis-tenten Werte des übergeordneten Programms weiter definiert sind, wenn die
Ausführung des Ausdrucks mit eval beendet ist.
Der von eval zurückgelieferte Wert ist der Wert des zuletzt ausgewerteten Ausdrucks.
Um explizit einen bestimmten Wert zurückzuliefern, können Sie innerhalb von eval
eine return-Anweisung verwenden. Wenn innerhalb der eval-Anweisung ein Syntax-
oder ein Laufzeitfehler auftritt oder eine die-Anweisung ausgeführt wird, liefert die
eval-Anweisung einen undefinierten Wert zurück, und die Variablen $@ enthält die
Fehlermeldung.
Da fatale Fehler, die innerhalb von eval-Anweisungen auftreten, die Ausführung des
übergeordneten Programms nicht anhalten, kann die Funktion genutzt werden, um
Fehler abzufangen oder schwer kalkulierbaren Code auszutesten.
exec LISTE
Die exec-Funktion führt einen Systembefehl aus und hat keinen Rückgabewert, es sei
denn der Befehl existiert nicht. Wenn LISTE aus mehr als einem Element besteht,
verwendet exec den Systemaufruf execvp(3) mit den Argumenten in LISTE. Wenn
das Argument aus einem einzigen skalaren Wert besteht, wird das Argument auf
Shell-Metazeichen geprüft. Wenn Shell-Metazeichen gefunden werden, wird das
Argument durch /bin/sh -c ausgeführt; andernfalls wird das Argument in Wörter
zerlegt und an execvp übergeben.
exists AUSDRUCK
Die exists-Funktion wird verwendet, um zu prüfen, ob ein bestimmter Schlüssel in
einem Hash definiert ist. exists prüft nicht, ob es zu dem Schlüssel auch einen Wert
gibt; es wird ausschließlich zum Prüfen auf Schlüssel verwendet. Sehen Sie zur
Veranschaulichung ein Beispiel:
if (exists $hash{$key}) { print "Ja."; }
else { print "Nein.\n"; }
exit AUSDRUCK
Die exit-Funktion wertet AUSDRUCK aus und bricht das Programm sofort ab.
Normalerweise ist die die sauberere Lösung, um die Ausführung eines Programms
abzubrechen, da die zurückgelieferten Fehlerinformationen abgefangen werden
können.
exp AUSDRUCK
Liefert den Wert e hoch AUSDRUCK zurück. Wenn exp ohne AUSDRUCK aufgerufen wird,
wird standardmäßig exp($). Für normale Exponenten verwenden Sie den Operator
**.
fcntl DATEIHANDLE, FUNKTION, SKALAR
Wird verwendet, um den Systemaufruf fcntl(2) zu emulieren. Mit use fcntl;
erhalten Sie die Funktionsdefinitionen, die Sie benötigen, um diese Funktion zu
nutzen. In der Manpage finden Sie weitere Informationen zu der Funktion. fcntl
liefert einen fatalen Fehler zurück, wenn sie auf der Plattform, auf der sie ausgeführt
wird, nicht implementiert ist.
fileno DATEIHANDLE
fileno liefert einen Dateideskriptor für einen gegebenen Datei-Handle zurück. Ein
Dateideskriptor ist ein kleiner Integerwert, der die Datei identifiziert. Er kann für die
Konstruktion von Bitmaps für die Verwendung mit select genutzt werden. Wenn
DATEIHANDLE nicht geöffnet ist, wird undefined zurückgeliefert.
flock DATEIHANDLE, OPERATION
Diese Funktion ruft den Systembefehl flock(2) für DATEIHANDLE auf. Weitere
Informationen zu den verfügbaren Operationen finden Sie in der Manpage zu
flock(2). Auf Systemen, die flock(2) oder Mechanismen zum Sperren von Dateien
nicht unterstützen, erhalten Sie einen fatalen Fehler.
fork
fork wird verwendet, um einen Systemaufruf in einen getrennten Prozeß zu
verzweigen. fork liefert die Kind-PID an den übergeordneten Prozeß zurück. Diese
Funktion ist nur auf Unix-ähnlichen Plattformen implementiert. Der gesamte Code in
dem Block wird in einem neuen Prozeß ausgeführt.
format
Die format-Funktion wurde entworfen, um COBOL-Programmierern das Erlernen
von Perl zu erleichtern. Genau genommen bietet es Ihnen eine Methode, um
Schablonen für die formatierte Ausgabe zu erzeugen. In der perlform-Manpage
können Sie detailliert nachlesen, wie Sie mit format eine Ausgabe erzeugen.
formline BILD, LISTE
Die Funktion formline wird intern von den Formaten verwendet. Sie wird verwendet,
um das Argument LISTE analog zu BILD zu formatieren. Weitere Informationen
entnehmen Sie bitte der Manpage perlform.
getc DATEIHANDLE
getc liefert das nächste Zeichen aus DATEIHANDLE zurück. Wird das Argument
DATEIHANDLE weggelassen, liefert getc das nächste Zeichen aus STDIN. getc erlaubt
keine ungepufferte Eingabe (mit anderen Worten, wenn STDIN die Konsole ist, dann
erhält getc das Zeichen erst, wenn der Puffer mit einem Neue-Zeile-Zeichen geleert
wurde).
getlogin
Liefert die aktuelle Login-Information aus /etc/utmp zurück, falls vorhanden. Falls
der Wert Null lautet, sollten Sie getpwuid() verwenden.
getpeername SOCKET
getpeername liefert die gepackte sockaddr-Adresse des anderen Endes der SOCKET-
Verbindung zurück.
getpgrp PID
getpgrp liefert die Prozeßgruppe für den spezifizierten Prozeß zurück. Wird als PID 0
angegeben, wird die Prozeßgruppe des aktuellen Prozesses zurückgeliefert.
getppid
getppid liefert die Prozess-ID für den Elternprozeß des aktuellen Prozesses zurück.
getpriority WELCHE, WER
Unter der Voraussetzung, dass getpriority auf Ihrem System implementiert ist,
liefert diese Funktion die Priorität für einen Prozeß, eine Prozeßgruppe oder einen
Benutzer zurück.
getsockname SOCKET
getsockname liefert die gepackte sockaddr-Adresse dieses Endes der SOCKET-
Verbindung zurück.
getsockopt SOCKET, LEVEL, OPTNAME
getsockopt liefert die angeforderte Option zurück oder im Falle eines Fehlers undefined.
glob AUSDRUCK
Die glob-Funktion liefert den Wert von AUSDRUCK mit Dateinamenerweiterungen
zurück, wie sie auch unter einer Shell vorkommen könnten. Wird AUSDRUCK
weggelassen, wird als Argument $_ verwendet.
gmtime AUSDRUCK
gmtime konvertiert eine Zeitangabe in dem von der time-Funktion zurückgelieferten
Zeitformat (Sekunden seit 1. Jan. 1970, 00:00) in die Greenwich-Standardzeit (auch
bekannt als Greenwich Mean Time). Diese Zeitangabe wird als eine Liste mit neun
Elementen zurückgeliefert. Die Inhalte der Elemente können Sie diesem Beispiel
entnehmen:
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime(time);
Beachten Sie, dass alle diese Elemente im numerischen Format zurückgegeben
werden und die aufeinanderfolgenden Zahlen (wie Monate und Tage der Woche) statt
mit einer 1 mit einer 0 beginnen. Das bedeutet, dass Monate von 0 bis 11 zählen. Das
zurückgelieferte Jahr ist die Zahl des Jahres seit 1900 und nicht einfach nur die letzten
zwei Stellen. Damit wird das so gefürchtete Jahr-2000-Problem vermieden. Wenn Sie
gmtime in einem skalaren Kontext verwenden, liefert die Funktion die Zeit im
ctime(3)-Format zurück:
Sat Jun 6 01:56:44 1998
goto LABEL
goto AUSDRUCK
goto &NAME
Die goto-Funktion sucht die mit LABEL benannte Anweisung und fährt ab dort mit der
Ausführung fort. Sie kann die Ausführung nicht mit Anweisungen fortsetzen, die sich
in Blocks befinden und initialisiert werden müssen (zum Beispiel Subroutinen oder
foreach-Schleifen). Es gibt noch zwei weitere Anwendungsbereiche für goto, die
jedoch ziemlich veraltet sind. goto AUSDRUCK wird verwendet, um zu einer Marke
(Label) zu springen, die mit AUSDRUCK angegeben wird, wobei der Gültigkeitsbereich
dynamisch ist. goto &NAME ersetzt die aktuell laufende Subroutine durch einen Aufruf
der benannten Subroutine, als ob diese zuerst aufgerufen worden wäre.
grep AUSDRUCK, LISTE
grep BLOCK LISTE
Die grep-Funktion dient dazu, Listen zu durchsuchen und alle Elemente in der Liste
zurückzuliefern, die einem bestimmten Muster entsprechen. grep übernimmt zwei
Argumente: einen Ausdruck und eine Liste. Es liefert eine neue Liste zurück, die all
die Elemente enthält, für den der Ausdruck wahr ist. Betrachten wir ein Beispiel:
@neuesarray = grep /rot/, @altesarray;
@neuesarray enthält in diesem Beispiel eine Liste der Elemente aus @altesarray, die
den String rot enthalten. Wenn Sie grep in einem skalaren Kontext aufrufen, wird statt
der Liste der Elemente die Anzahl der übereinstimmenden Elemente zurückgeliefert.
hex AUSDRUCK
hex liest AUSDRUCK als einen hexadezimalen String und liefert den Dezimalwert zurück.
Wird AUSDRUCK fortgelassen, liest die Funktion $_.
import KLASSENNAME LISTE
import KLASSENNAME
import ist keine vordefinierte Funktion. Sie wird vielmehr von Modulen
implementiert, die Namen in andere Module exportieren wollen. Die import-Funktion
wird von der use-Funktion aufgerufen, wenn ein Modul in ein Perl-Programm geladen
wird.
index STR, SUBSTR, POSITION
index STR, SUBSTR
index wird verwendet, um einen Teilstring in einem größeren String zu lokalisieren.
Die Funktion übernimmt drei Argumente, von denen eines optional ist. Bei den
Argumenten handelt es sich um den String, der durchsucht werden soll, den
gesuchten Teilstring und die Position, ab der die Suche beginnen soll (optional). index
liefert die Position im String zurück, an der der Teilstring das erste Mal beginnt. Um
zum Beispiel den String bar in dem größeren String verwundbar zu finden, könnten
Sie den folgenden Code verwenden: index ('verwundbar', 'bar');. Um das zweite
Vorkommen von sein in dem String Sein oder Nichtsein zu suchen, könnten Sie
optional das dritte Argument verwenden, um die Suche bei Position 4 zu starten:
index ('Sein oder Nichtsein ', 'sein', 4);.
int AUSDRUCK
int liefert den Integeranteil eines Strings zurück. Wenn beispielsweise ein String mit
einem Integer beginnt, wie 60 kmh, wird int diesen Integer, in unserem Beispiel 60,
zurückliefern. Strings, die nicht mit einem Integer beginnen, liefern 0 zurück. Wenn
Sie die Perl-Warnungen aktiviert haben, erhalten Sie für jeden String, der nicht mit
einer Zahl beginnt, eine Warnung.
ioctl DATEIHANDLE, FUNKTION, SKALAR
ioctl wird dazu verwendet, den Systemaufruf ioctl(2) zu implementieren. Sie
werden wahrscheinlich
require "ioctl.ph";
aufrufen müssen, bevor Sie die Funktionsdefinitionen für ioctl importieren können.
Wenn die Funktion nicht existiert, werden Sie auf der Basis der Systemdatei ioctl.h
Ihre eigenen Funktionsdefinitionen erzeugen müssen.
join AUSDRUCK, LISTE
Die join-Funktion ist das Gegenstück zu split. Sie wird benötigt, um die Elemente
einer Liste in einem einzigen String zusammenzufassen. Sie übernimmt zwei
Argumente: einen Ausdruck und eine Liste. Der Inhalt des Ausdrucks wird als
Begrenzer zwischen den Elementen im zurückgelieferten String verwendet.
keys HASH
Die keys-Funktion liefert ein Array zurück, das alle Schlüssel des in HASH angegebenen
Hash enthält. Diese Funktion wird häufig verwendet, um die Schlüssel in einem Hash
zu sortieren, bevor man eine Schleife darüber laufen läßt. Hier ein typisches Beispiel:
foreach $key (sort (keys %hash)) {
print $key, " = ", $value, "\n";
}
kill LISTE
kill dient eigentlich dazu, ein Signal an eine Liste von Prozessen zu senden, anstatt
diese einfach abzuwürgen. Das erste Argument in LISTE muss das zu sendende Signal
sein, der Rest sollten die Prozesse sein, die das Signal erhalten sollen. Um Prozesse zu
beenden, würden Sie folgenden Code verwenden:
kill 1, 100, 102, 110;
Um die gleichen Prozesse mit größerer Entschlossenheit zu beenden, würden Sie schreiben:
kill 9, 100, 102, 110;
Sie können anstatt einer Signalzahl auch den Signalnamen angeben, der dann
allerdings in Anführungszeichen stehen muss. Weitere Informationen zu den Signalen
finden Sie in der Manpage signal(5).
last LABEL
last
Der last-Befehl veranlaßt das direkte Verlassen der in LABEL angegebenen Schleife.
Wird kein Wert für LABEL angegeben, wird die innerste Schleife verlassen.
lc AUSDRUCK
Die lc-Funktion konvertiert alle alphabetischen Zeichen in einem String in
Kleinbuchstaben. lc 'ABC'; liefert demnach abc zurück. Wird kein AUSDRUCK
angegeben, wird die lc-Funktion auf $_ angewendet.
lcfirst AUSDRUCK
Liefert den Wert in AUSDRUCK zurück, nachdem das erste Zeichen in einen
Kleinbuchstaben verwandelt wurde. Wird kein AUSDRUCK angegeben, wird die Funktion
auf $_ angewendet.
length AUSDRUCK
length übernimmt einen String als Argument und liefert einen Integer zurück, der die
Länge des Strings in Bytes angibt. So liefert zum Beispiel length("Hund") den Wert 4
zurück. Wenn AUSDRUCK nicht angegeben wird, wird die Funktion $_ angewendet.
link ALTEDATEI, NEUEDATEI
Erzeugt einen harten (anstelle eines symbolischen) Links von ALTEDATEI zu NEUEDATEI.
Zur Erzeugung eines symbolischen Links müssen Sie sich der Funktion symlink
bedienen.
listen SOCKET, WARTESCHLANGENGROESSE
Die listen-Funktion in Perl erfüllt die gleiche Funktion wie der Systemaufruf listen.
Sie liefert im Erfolgsfall wahr zurück und ansonsten falsch.
local AUSDRUCK
local gibt an, dass die aufgelisteten Variablen lokal zu dem gerade ausgeführten
Block, der Schleife, Subroutine, eval {} oder do sind. Wenn man local mehr als eine
Variable übergeben möchte, sollte man diese in Klammern setzen. Um den
Gültigkeitsbereich einer Variablen zu begrenzen, ist es meist besser, my zu verwenden.
localtime AUSDRUCK
Die Funktion localtime ist identisch mit der Funktion gmtime, nur dass sie die Zeit in
die lokale Zeitzone und nicht in die Greenwich-Zeit konvertiert.
log AUSDRUCK
Liefert den Logarithmus (Basis e) von AUSDRUCK oder von $_, wenn AUSDRUCK nicht
angegeben wird.
lstat DATEIHANDLE
lstat AUSDRUCK
lstat
lstat entspricht der Funktion stat, bis auf die Tatsache, dass sie statistische
Informationen für einen symbolischen Link und nicht für die Datei, auf die der Link
verweist, zurückliefert. Wenn AUSDRUCK weggelassen wird, wird lstat auf den Wert in
$_ angewendet.
map BLOCK LISTE
map AUSDRUCK, LISTE
map stellt eine Alternative zu foreach dar, wenn es darum geht, eine Operation auf
jedes Element in einer Liste auszuführen. Die Funktion kann in zwei Formen
aufgerufen werden. Der folgende Code demonstriert, wie Sie alle Operationen in
einem Codeblock auf eine Liste anwenden können:
@rueckwaerts_worte = map {
lc;
reverse;
} @worte;
Das obige Beispiel dreht alle Elemente in dem Array @worte um und konvertiert sie in
Kleinbuchstaben. Die Ergebnisse von map werden in einem Listenkontext
zurückgegeben, weshalb ich sie einem Array zuweise. Beachten Sie, dass jedes
Element zur Bearbeitung der Variablen $_ zugewiesen wird. Das ist der Grund, warum
ich die Funktionen im Codeblock ohne Argumente verwenden kann. Um eine einzige
Operation auf jedes Element einer Liste durchzuführen, wird map folgendermaßen
aufgerufen:
@neueliste = map(uc, @alteliste);
Auffällig ist, dass bei Anwendung einer einzelnen Operation die Operation mit Komma von der zu verarbeitenden Liste getrennt wird.
mkdir DATEINAME, MODUS
mkdir wird verwendet, um ein neues Verzeichnis anzulegen, dessen Name in
DATEINAME angegeben wird. Sie sollten die Zugriffsrechte für das Verzeichnis mit
MODUS setzen. MODUS sollte im üblichen Oktalformat angegeben werden (eine reine
Zahl, nicht von Anführungszeichen umschlossen) und das SUID-Bit enthalten.
msgctl ID, CMD, ARG
msgctl ruft den Systemaufruf msgctl(2) auf. Diese Funktion ist nur auf Maschinen
verfügbar, die das System V IPC unterstützen.
msgget SCHLÜSSEL, FLAGS
Ruft die System V IPC-Funktion msgget auf und liefert die ID der
Nachrichtenwarteschlange oder im Falle eines Fehlers undefined zurück.
msgrcv ID, VAR, GROESSE, TYP, FLAGS
Ruft die System V IPC-Funktion msgrcv auf, um eine Nachricht von der
Nachrichtenwarteschlange ID zu empfangen, die in der Variablen VAR gespeichert
wird, mit einer maximalen Größe von GROESSE. Liefert im Erfolgsfall wahr zurück oder
im Falle eines Fehlers falsch.
msgsnd ID, MLD, FLAGS
Ruft die System V IPC-Funktion msgsnd auf, um MLD an die
Nachrichtenwarteschlange, die durch ID spezifiziert ist, zu senden. Liefert im
Erfolgsfall wahr zurück oder im Falle eines Fehlers falsch.
my AUSDRUCK
my wird verwendet, um die aufgelisteten Variablen einem Gültigkeitsbereich
zuzuordnen, der lokal zu dem aktuellen Block, zu eval{}, zur Subroutine oder zur
importierten Datei ist. Wird mehr als eine Variable angegeben, müssen die Variablen
in Klammern stehen.
next LABEL
next
Wenn das Programm in einer Schleife auf den Befehl next stößt, springt die
Programmausführung direkt zum nächsten Schleifendurchlauf.
no MODULE LISTE
Das no-Modul ist das Gegenstück zu dem use-Operator. Ausführlichere Informationen
dazu finden Sie in der perlobj-Manpage.
oct AUSDRUCK
oct liest AUSDRUCK als einen oktalen String ein und liefert den zugehörigen
Dezimalwert zurück, es sei denn der String beginnt mit 0x, was bedeutet, dass der
String als Hexadezimalwert interpretiert wird. Wird AUSDRUCK weggelassen, liest die
Funktion $_ ein.
open (DATEIHANDLE, AUSDRUCK)
Die open-Funktion öffnet die Datei, die in AUSDRUCK spezifiziert wird, und weist sie
DATEIHANDLE zu. Wenn AUSDRUCK weggelassen wird, wird angenommen, dass eine
Variable mit dem gleichen Namen wie DATEIHANDLE den Namen der zu öffnenden
Datei enthält.
Indem Sie < vor den Dateinamen setzen, können Sie die Datei für die Eingabe öffnen,
und indem Sie ein > davorsetzen, öffnen Sie die Datei für die Ausgabe. Um Daten an
die Ausgabedatei anzuhängen, anstatt sie zu überschreiben, müssen Sie zwei >>-
Zeichen vor den Dateinamen setzen. Um einen Datei-Handle mit einer Pipe anstatt
der Standardeingabe oder -ausgabe zu öffnen, können Sie das Pipe-Zeichen (|)
verwenden. Wenn Sie das |-Zeichen vor den Programmnamen setzen, öffnen Sie
eine Pipe zu dem Programm, und wenn Sie das | nach dem Dateinamen setzen,
öffnen Sie eine Pipe von dem Programm zu Ihrem Datei-Handle.
Weitere Informationen zu der open-Funktion finden Sie in Kapitel 15, »Dateien und
E/A«.
opendir (VERZEICHNISHANDLE, AUSDRUCK)
Die Funktion opendir öffnet das in AUSDRUCK spezifizierte Verzeichnis für die Eingabe
und weist es VERZEICHNISHANDLE zu. Aus dem Verzeichnis-Handle kann dann die Liste
der Einträge in dem Verzeichnis gelesen werden. Beachten Sie, dass sich der
Namensbereich für Verzeichnis-Handles nicht mit dem von Datei-Handles
überschneidet.
ord AUSDRUCK
Liefert den numerischen ASCII-Wert des ersten Zeichens von AUSDRUCK zurück. Wenn
AUSDRUCK nicht angegeben wird, wird $_ verwendet.
pack SCHABLONE, LISTE
pack übernimmt eine Liste von Werten, packt sie in eine binäre Struktur und liefert
den String zurück, der diese Struktur enthält. SCHABLONE ist eine Liste von Zeichen, die
die Reihenfolge und den Typ der Werte vorgibt.
Tabelle A.1: Schablonensymbole für pack
Jeder Buchstabe kann von einer Zahl gefolgt sein, die angibt, wie oft der Buchstabe
wiederholt werden soll. Mit der Funktion unpack können Elemente wieder aus einer
binären Struktur extrahiert werden.
package NAMENSBEREICH
Die package-Funktion legt fest, dass alle Variablen in dem innersten Block,
Subroutine, eval oder Datei, zu NAMENSBEREICH gehören. Weitere Informationen
finden Sie in der perlmod-Manpage.
pipe LESEHANDLE, SCHREIBHANDLE
pipe öffnet eine Pipe von LESEHANDLE zu SCHREIBHANDLE, wie der Systemaufruf des
gleichen Namens.
pop ARRAY
Die pop-Funktion entfernt das letzte Element in einem Array (verkürzt es um ein
Element) und liefert es als skalaren Wert zurück. push (wird gleich besprochen) und
pop sind sogenannte Stack- oder Stapel-Funktionen. Wenn Sie sich ein Array als
einen Stapel Tabletts in einer Cafeteria vorstellen, wird mit pop das oberste Tablett
vom Stapel entfernt.
pos SKALAR
Liefert die Position in SKALAR zurück, an der die letzte m//g-Suche abgebrochen
wurde. Wenn SKALAR nicht angegeben wird, wird $_ verwendet.
print DATEIHANDLE LISTE
print LISTE
Die print-Funktion wird dazu verwendet, die ihr im Listenkontext übergebenen Daten
der Standardausgabe oder, wenn ein Datei-Handle spezifiziert wurde, diesem Datei-
Handle zu übergeben. Wird keine Liste von auszugebenden Daten angegeben, wird
standardmäßig der Inhalt von $_ ausgegeben. Beachten Sie, dass zwischen dem Datei-
Handle und der Liste der auszugebenden Daten kein Komma stehen sollte. Um zum
Beispiel einige Daten an das Datei-Handle DATEI auszugeben, würden Sie schreiben:
print DATEI $daten
print DATEI $daten, ' ', $mehr_daten, '\n';
printf DATEIHANDLE LISTE
printf LISTE
printf wird verwendet, um die Ausgabe nach den Konventionen der sprintf-
Funktion zu formatieren. Im wesentlichen ist
printf DATEIHANDLE FORMAT, LISTE;
print DATEIHANDLE sprintf(FORMAT, LISTE);
push ARRAY, LISTE
push wird verwendet, um ein Element an das Ende eines Arrays anzuhängen. Wenn
Sie einen skalaren Wert in das Array »pushen«, wird das Array dadurch um ein
Element länger, und der Wert wird dem letzten Element im Array zugewiesen. Stellen
Sie sich den gleichen Stapel Tabletts aus unserem Beispiel zur pop-Funktion vor: In
diesem Fall bewirkt die push-Funktion, dass ein Tablett oben auf den Stapel
draufgelegt wird. Sie können auch mehrere Werte an ein Array anhängen, Sie
müssen nur eine Liste als Argument für die push-Funktion angeben.
quotemeta AUSDRUCK
quotemeta
quotemeta liefert den Wert von AUSDRUCK zurück, wobei alle nichtalphanumerischen
Zeichen mit Escape-Zeichen (Backslash) versehen sind. Verwendet $_, wenn AUSDRUCK
weggelassen wurde.
rand AUSDRUCK
rand
Die rand-Funktion liefert eine Zufallszahl zwischen 0 und AUSDRUCK. Wenn AUSDRUCK
weggelassen wird, liefert die Funktion einen Wert zwischen 0 und 1 (1 nicht
eingeschlossen). Unter srand erfahren Sie, wie Sie den Zufallszahlengenerator
initialisieren.
read DATEIHANDLE, SKALAR, LAENGE, OFFSET
read DATEIHANDLE, SKALAR, LAENGE
Die read-Funktion wird verwendet, um eine beliebige Anzahl an Daten-Bytes von
einem Datei-Handle in einen skalaren Wert zu lesen. Sie übernimmt vier Argumente:
Datei-Handle, Skalar, Länge und Offset (Offset ist optional). Das Argument
DATEIHANDLE gibt an, von welchem Datei-Handle die Daten zu lesen sind. Das
Argument SKALAR definiert die Variable, der die Daten zugewiesen werden. LAENGE
gibt an, wie viele Daten-Bytes gelesen werden, und OFFSET wird verwendet, wenn Sie
die Daten nicht von Beginn des Strings an einlesen wollen, sondern erst ab einer
späteren Position. Sehen Sie im folgenden ein Beispiel, das 1024 Byte vom 2048ten
Byte an aus dem Datei-Handle DATEI einliest und der Variablen $chunk zuweist:
read DATEI, $chunk, 1024, 2048;
readdir VERZEICHNISHANDLE
readdir wird verwendet, um Einträge aus einem Verzeichnis zu lesen, das mit
opendir geöffnet wurde. Wenn diese Funktion in einem skalaren Kontext verwendet
wird, liefert sie den nächsten Eintrag in dem Verzeichnis zurück. In einem
Listenkontext liefert sie alle übriggebliebenen Einträge im Verzeichnis. Wenn bereits
alle Einträge in dem Verzeichnis gelesen wurden, lautet der Rückgabewert undefined.
readlink AUSDRUCK
Die readlink-Funktion liest den Wert eines symbolischen Links. Wenn auf der
Plattform symbolische Links nicht implementiert sind, wird ein fataler Fehler
zurückgeliefert. Wenn AUSDRUCK fortgelassen wird, wird der Wert in $_ verwendet.
recv SOCKET, SKALAR, LAENGE, FLAGS
recv wird verwendet, um eine Nachricht auf einem Socket zu empfangen, wobei man
sich der C-Funktion recvfrom bedient. Die Funktion empfängt LAENGE Bytes in der
Variablen SKALAR von SOCKET. Dabei wird die Adresse des Absenders zurückgeliefert,
es sei denn es liegt ein Fehler vor, in welchem Falle undefined zurückgeliefert wird.
recv übernimmt die gleichen Flags wie der gleichlautende Systemaufruf.
redo LABEL
redo
redo startet den aktuellen Schleifenblock neu, ohne die Testbedingung der Schleife
neu zu bewerten. Wenn LABEL nicht angegeben wird, wirkt redo auf den innersten
Block.
ref AUSDRUCK
ref liefert wahr zurück, wenn AUSDRUCK eine Referenz ist, im anderen Falle falsch.
Wird AUSDRUCK nicht angegeben, wird $_ verwendet.
rename ALTERNAME, NEUERNAME
Die rename-Funktion ändert den Namen der Datei ALTERNAME in NEUERNAME.
require AUSDRUCK
Die Funktion require wird meist dazu verwendet, eine externe Perl-Datei in das
aktuelle Programm zu laden. Allgemein wird sie verwendet, um eine Art von
Abhängigkeit von ihrem Argument zu schaffen. Wenn AUSDRUCK numerisch ist, wird
die entsprechende Perl-Version für die Ausführung des Programms benötigt. Wenn
kein Argument angegeben wird, wird $_ verwendet.
Um eine Datei zu laden, sollten Sie den Dateinamen als Argument zu require
übergeben. Erfolgt die Übergabe des Dateinamens als einfaches Wort, wird
automatisch .pl angehängt und :: durch / ersetzt, damit Standardmodule möglichst
problemlos geladen werden können. Die benötigte Datei muss mit einer Anweisung
enden, die als wahr ausgewertet wird. In der Regel enden Dateien, die für die
Verwendung mit require erstellt werden, daher mit einer 1;-Anweisung.
reset AUSDRUCK
reset
reset wird verwendet, um globale Variablen oder ??-Suchläufe zurückzusetzen, und
steht häufig am Anfang einer Schleife oder in dem continue-Block am Ende einer
Schleife. reset löscht die Werte aller Variablen, die mit den Zeichen aus AUSDRUCK
beginnen. Wenn kein Argument angegeben wird, löscht reset alle ??-Suchläufe.
return AUSDRUCK
Die return-Funktion unterbricht die Ausführung von eval, einer Subroutine oder
einer do-Datei und liefert den Wert von AUSDRUCK zurück. Wenn keine return-
Anweisung vorgesehen wird, wird der Wert des zuletzt ausgewerteten Ausdrucks
zurückgeliefert.
reverse LISTE
Die reverse-Funktion übernimmt einen skalaren Wert oder eine Liste als Argument.
Im Falle eines skalaren Werts wird die Reihenfolge der Zeichen in dem Skalar
umgedreht. So erzeugt zum Beispiel der Code reverse "rot"; den Rückgabewert
tor. Wenn reverse eine Liste übergeben wird, so wird die Reihenfolge der Elemente
in der Liste umgedreht. reverse ("rot", "gruen", "blau"); hat den Rückgabewert
("blau", "gruen", "rot").
rewinddir VERZEICHNISHANDLE
rewinddir setzt das Verzeichnis-Handle für ein mit readdir geöffnetes Verzeichnis
zurück auf den ersten Eintrag in diesem Verzeichnis.
rmdir DATEINAME
rmdir entfernt das in DATEINAME spezifizierte Verzeichnis, wenn es leer ist. Ist das
Verzeichnis nicht leer oder die Funktion versagt aus einem anderen Grund, liefert sie 1
zurück. Im Erfolgsfall lautet der Rückgabewert 0. Wenn DATEINAME nicht angegeben
wird, wird der Wert in $_ verwendet.
scalar AUSDRUCK
Erzwingt, dass der Wert in AUSDRUCK in einem skalaren Kontext ausgewertet wird, und
liefert den Wert von AUSDRUCK zurück.
seek DATEIHANDLE, OFFSET, VONWOAUS
seek wird verwendet, um die Position von DATEIHANDLE zu setzen. VONWOAUS kann einen
der folgenden Werte annehmen: 0, um die Position auf POSITION zu setzen, 1, um
POSITION zu der aktuellen Position hinzuzuaddieren, und 2, um die Position auf EOF
plus POSITION zu setzen (aus offensichtlichen Gründen üblicherweise eine negative
Zahl).
seekdir VERZEICHNISHANDLE, POS
seekdir setzt die Position von VERZEICHNISHANDLE für die readdir-Funktion. POS
muss ein Wert sein, der von telldir zurückgegeben wurde.
select DATEIHANDLE
select
Wenn der Aufruf ohne Argumente erfolgt, liefert select das gerade ausgewählte
Datei-Handle zurück. Wenn Sie select ein Datei-Handle übergeben (oder einen
Ausdruck, der einen Datei-Handle zurückliefert), wird dieser Datei-Handle zum
Standard-Handle, an den alle Ausgaben gesendet werden. Mit anderen Worten: der
Datei-Handle wird zur Standardausgabe. Wenn Sie also eine Reihe von Elementen in
einem bestimmten Datei-Handle ausgeben wollen, ist es vielleicht einfacher, das
Datei-Handle mit select einzurichten und dafür die Datei-Handle in den print-
Anweisungen einzusparen.
semctl ID, SEMNUM, CMD, ARG
semctl ruft den System V IPC-Systemaufruf semctl(2) auf.
semget SCHLÜSSEL, NSEMS, GROESSE, FLAGS
semget ruft den System-V-IPC-Systemaufruf semget(2) auf und liefert die Semaphore-
ID zurück oder im Falle eines Fehlers undefined.
semop KEY, OPSTRING
Diese Funktion ruft den System-V-IPC-Systemaufruf semop(2) auf, der Semaphore-
Operationen wie Signalisieren und Warten ausführt.
send SOCKET, MLDNG, FLAGS, ZU
send SOCKET, MLDNG, FLAGS
Die send-Funktion sendet eine Nachricht über ein Socket. Wenn das Socket nicht
verbunden ist, müssen Sie eine Adresse angeben, an die gesendet werden soll. Die
Funktion übernimmt die gleichen Flags wie der Systemaufruf send und liefert die
Anzahl der gesendeten Zeichen zurück, wenn sie erfolgreich ist (oder undefined,
wenn ein Fehler aufgetreten ist).
setpgrp PID, PGRP
setpgrp setzt die Prozeßgruppe für die spezifizierte PID. Wenn als PID 0 angegeben
wird, wird die Prozeßgruppe auf den aktuellen Prozeß gesetzt. Wenn setpgrp(2) nicht
vom System unterstützt wird, wird ein fataler Fehler produziert.
setpriority WELCHE, WER, PRIORITÄT
Setzt die Priorität für einen Prozeß, eine Prozeßgruppe oder einen Benutzer. Wenn
setpriority(2) nicht unterstützt wird, führt dies zu einem fatalen Fehler.
setsockopt SOCKET, LEVEL, OPTNAME, OPTWERT
setsockopt wird verwendet, um die spezifizierte Option für ein Socket zu setzen. Bei
Auftreten eines Fehlers wird undefined zurückgeliefert. Verwenden Sie undef für
OPTWERT, um eine Option zu setzen, ohne einen Wert für diese Option anzugeben.
shift ARRAY
shift
Die unshift-Funktion ist das Gegenstück zu der shift-Funktion. Sie entfernt das erste
Element aus einem Array und liefert es als skalaren Wert zurück. Die Indizes der
anderen Elemente im Array werden um eins dekrementiert, und das Array ist
anschließend um ein Element kürzer als vorher. unshift wird in der Regel dazu
verwendet, Argumente zu verarbeiten, die einer benutzerdefinierten Funktion
übergeben wurden. Wie Sie wissen, werden Argumente mittels des Arrays @_ an
Funktionen übergeben. Mit Befehlen wie $arg = unshift @_; können sie
Funktionsargumente verarbeiten, ohne Gedanken an ihre Indizes verschwenden zu
müssen.
shmctl ID, CMD, ARG
shmctl ruft den System-V-Systemaufruf shmctl(2) auf.
shmget SCHLUESSEL, GROESSE, FLAGS
shmget ruft den System-V-Systemaufruf shmget(2) auf.
shmread ID, VAR, POS, GROESSE
shmread ruft den System-V-Systemaufruf shmread(2) auf.
shmwrite ID, STRING, POS, GROESSE
shmwrite ruft den System-V-Systemaufruf shmwrite(2) auf.
shutdown SOCKET, WIE
shutdown schließt eine Socket-Verbindung. Dabei wird die Art des Schließens in WIE
vorgegeben, dass der Syntax des Systemaufrufs shutdown entspricht.
sin AUSDRUCK
Liefert den Sinus von AUSDRUCK oder von $_, wenn kein Argument übergeben wird.
sleep AUSDRUCK
sleep
sleep versetzt das Programm in einen Schlaf - für die in AUSDRUCK definierten
Sekunden oder, falls kein Argument übergeben wird, für unbegrenzte Zeit. sleep kann
mit dem SIGALRM-Signal unterbrochen werden. Die Funktion liefert die Anzahl der
tatsächlich geschlafenen Sekunden zurück.
socket SOCKET, DOMÄNE, TYP, PROTOKOL
Die socket-Funktion wird dazu verwendet, das Socket zu öffnen, das mit dem Datei-
Handle SOCKET verbunden ist. DOMÄNE, TYP und PROTOKOL werden auf die gleiche Weise
spezifiziert wie im socket-Systemaufruf. Sie sollten mit use Socket; das gleichnamige
Modul importieren, bevor Sie die socket-Funktion aufrufen, um sicherzustellen, dass
die korrekten Definitionen importiert sind.
socketpair SOCKET1, SOCKET2, DOMÄNE, TYP, PAAR
Die Funktion socketpair erzeugt ein Paar unbenannter Sockets in der spezifizierten
Domäne und mit dem spezifizierten Typ. Wenn die Funktion nicht implementiert ist,
erfolgt ein fataler Fehler. Im Erfolgsfall liefert die Funktion wahr zurück.
sort SUBNAME LISTE
sort BLOCK LISTE
sort LISTE
Die sort-Routine wird verwendet, um die Einträge einer Liste zu sortieren. Die
Elemente der Liste werden sortiert zurückgegeben. Es gibt drei verschiedene
Möglichkeiten, sort anzuwenden. Die einfachste davon ist der Aufruf von sort mit
der zu sortierenden Liste als einzigem Argument. Der Rückgabewert ist eine Liste, die
nach den Standardregeln für Stringvergleiche sortiert wurde.
Eine andere Möglichkeit besteht darin, eine Subroutine anzugeben, die die Elemente
in der Liste vergleicht. Diese Subroutine liefert einen Integer kleiner als, gleich oder
größer als Null zurück, je nachdem wie die Elemente in der Liste angeordnet werden
sollen (in diesen Subroutinen werden besonders oft der <=>-Operator, der numerische
Vergleiche durchführt, und der cmp-Operator, der für Stringvergleiche zuständig ist,
verwendet).
Mit der im vorigen Absatz beschriebenen Subroutinen-Methode können Sie Listen
nach anderen Kriterien als den standardmäßig vorgegebenen sortieren. Häufiger
jedoch fügt man einfach nur einen Codeblock als erstes Argument an den
Funktionsaufruf ein. Bestimmt ist Ihnen die sort-Funktion schon einmal in der
folgenden Form begegnet:
@sortierteliste = sort { $a <=> $b } @liste;
Das obige Beispiel sortiert @liste in aufsteigender numerischer Reihenfolge und weist
die zurückgelieferte Liste dem Array @sortierteliste zu. Die von der sort-Routine
verglichenen Elemente werden zum Sortieren als $a und $b an den Codeblock (oder
die Subroutine) gesendet. Der obige Codeblock vergleicht also die Elemente paarweise
mit Hilfe des <=>-Operators. Betrachten wir noch ein paar weitere häufige
Codeblocks, die zusammen mit der sort-Funktion verwendet werden:
# Sortiert in alphabetischer Reihenfolge (entspricht dem Standardverfahren)
@sortierteliste = sort {$a cmp $b } @liste;
# Sortiert in absteigender alphabetischer Reihenfolge
@sortierteliste = sort { $b cmp $a } @liste;
# Sortiert in numerischer Reihenfolge
@sortierteliste = sort { $a <=> $b } @liste;
# Sortiert in absteigender numerischer Reihenfolge
@ ortierteliste = sort { $b <=> $a } @liste;
splice ARRAY, OFFSET, LAENGE, LISTE
splice ARRAY, OFFSET, LAENGE
splice ARRAY, OFFSET
splice ist das Schweizer Armeemesser unter den Array-Funktionen. Sie stellt eine
Universalfunktion dar, um Elemente in ein Array einzufügen, daraus zu entfernen oder
Elemente darin durch neue Werte zu ersetzen. splice kann mit bis zu vier
Argumenten aufgerufen werden, von denen die letzten zwei optional sind. Das erste
Argument sollte das Array sein, das mit splice bearbeitet werden soll. Das zweite
Argument ist der Offset, der die Position im Array angibt, an der die Aktion stattfindet
(wenn Sie vom hinteren Ende des Arrays abzählen wollen, geben Sie eine negative
Zahl an). Das dritte - optionale - Argument ist die Anzahl der Elemente, die entfernt
werden sollen (wenn Sie dieses Argument fortlassen, werden alle Elemente von dem
Offset bis zum Ende des Arrays entfernt). Der Rest der Argumente ist eine Liste von
Elementen, die am Offset eingefügt wird. Das alles ist etwas verwirrend, deshalb
möchte ich es anhand eines Beispiels veranschaulichen. Um alle Elemente eines
Arrays ab dem zweiten Element zu löschen (zur Erinnerung: Array-Indizes beginnen
mit einer 0), können Sie folgenden Code eingeben:
splice(@array, 2);
Um einen neuen skalaren Wert zwischen dem zweiten und dritten Element in ein Array einzufügen, ohne etwas zu entfernen, würden sie schreiben:
splice(@array, 2, 0, "neuer wert");
Um das zweite und dritte Element in einem Array durch drei neue Elemente zu ersetzen, würden Sie folgendes eingeben:
splice(@array, 2, 2, "rot", "gruen", "blau");
Sie sollten sich darüber im klaren sein, dass nach dem Aufruf von splice für ein Array
die Elemente in dem Array neu indiziert werden, um die Änderungen in der Struktur
widerzuspiegeln. Demzufolge sind in unserem Beispiel oben alle Indizes für die
Elemente nach dem von uns eingefügten Element um eins inkrementiert, da wir zwei
Elemente durch drei ersetzt haben.
split /MUSTER/, AUSDRUCK, LIMIT
split /MUSTER/, AUSDRUCK
split /MUSTER/
split
Die split-Funktion dient dazu, einen String in mehrere Teilstrings zu zerlegen und
diese Teile als Liste zurückzugeben. Sie übernimmt bis zu drei Argumente: ein Muster,
gemäß dem zerlegt wird, den String, der zerlegt werden soll, und eine Obergrenze für
die Anzahl an Listenelementen, die zurückgegeben werden sollen (optional). Wenn Sie
keinen zu zerlegenden String als Argument übergeben, wird der in $_ gespeicherte
Wert verwendet. Sie müssen auch nicht unbedingt ein Muster für die Zerlegung
angeben. Wenn es fehlt, verwendet Perl die verschiedenen Whitespace-Zeichen als
Begrenzer. Bei dem Musterargument handelt es sich immer um einen regulären
Ausdruck der zwischen // steht. Um beispielsweise einen String an seinen
Kommastellen zu zerlegen, sähe Ihr Muster so aus: /,/. Betrachten wir einige
Beispiele:
# Leeres Muster zerlegt einen String in einzelne Zeichen
@buchstaben = split //, "wort";
# Ein Leerzeichen im Muster zerlegt einen Satz in seine
# einzelnen Wörter
@worte = split / /, "Dies ist ein Satz";
# Dieses Muster zerlegt den Satz bei jedem Whitespace-Zeichen und
# nicht nur bei Leerzeichen (entspricht dem Standard)
@worte = split /\s/, "Dies ist ein Satz";
# Das dritte Argument stellt sicher, dass nur die ersten zwei Elemente, die
# aus dem String extrahiert wurden, in der Liste zurückgeliefert werden.
($erstes, $zweites) = split /\s/, "Dies ist ein Satz", 2;
sprintf FORMAT, LISTE
Die Perl-Funktion sprintf wird verwendet, um Strings nach den Konventionen für die
C-Funktion sprintf zu formatieren. Nachstehend sehen Sie eine Tabelle, die eine
Liste der Konvertierungen für sprintf enthält:
Weitere Informationen zu den Konventionen für sprintf finden Sie in der Manpage
zu printf(3).
sqrt AUSDRUCK
sqrt liefert die Quadratwurzel von AUSDRUCK oder, wenn AUSDRUCK fehlt, von $_ zurück.
srand AUSDRUCK
srand initialisiert den Zufallszahlengenerator von Perl. Wenn Sie AUSDRUCK fortlassen,
wird srand(time) verwendet. Diese Funktion sollten Sie nur einmal in Ihrem
Programm verwenden.
stat DATEIHANDLE
Die stat-Funktion trägt Informationen über die in DATEIHANDLE angegebene Datei
zusammen und liefert eine Liste dieser Informationen zurück. Diese Funktion kann
auch einen Ausdruck, der einen Dateinamen enthält, statt eines geöffneten Datei-
Handles übernehmen. Wird kein Argument übergeben, verwendet stat den Wert von
$_ als sein Argument. Die von stat zurückgelieferten Daten stehen in einer Liste und
umfassen:
Werfen wir einen kurzen Blick auf die von stat zurückgelieferten Werte.
Folgendermaßen würde man eine Liste, die von stat zurückgegeben wurde, einer
Gruppe von Variablen zuweisen:
($dev,$inode,$mode,$uid,$gid,$rdev,
$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat $filename;
study SKALAR
study
study nimmt sich Zeit, um SKALAR (oder $_, wenn SKALAR nicht angegeben wurde) zu
studieren - mit dem Ziel, zukünftige Musterabgleiche auf dem Wert effizienter zu
machen. Ob dies letzlich Zeit spart oder nicht, hängt davon ab, wie viele
Musterabgleiche Sie machen wollen und welcher Art diese Abgleiche sind.
substr AUSDRUCK, OFFSET, LAENGE
substr AUSDRUCK, OFFSET
substr wird verwendet, um eine Folge von Zeichen aus einem String zu extrahieren.
Diese Funktion übernimmt drei Argumente, von denen das letzte optional ist. Die
Argumente sind der Ausdruck, aus dem die Zeichen extrahiert werden sollen (kann ein
skalarer Wert, eine Variable oder ein Aufruf an eine andere Funktion sein), die
Position, an der mit dem Extrahieren der Zeichen begonnen werden soll, und optional
die Anzahl der zu extrahierenden Zeichen. So liefert zum Beispiel der Aufruf
substr("foobar", 3, 2); die Zeichenfolge ba zurück. Wenn Sie die Längenangabe
(LAENGE) fortlassen, also substr("foobar", 3);, lautet der Rückgabewert bar. Sie
können auch einen negativen Offsetwert verwenden. Dann wird die Position durch
Rückwärtszählen vom Stringende an ermittelt. Das Beispiel substr("foobar", -4,
2); liefert ob zurück.
symlink ALTEDATEI, NEUEDATEI
Die Funktion symlink dient dazu, einen symbolischen Link von ALTEDATEI zu
NEUEDATEI herzustellen. symlink löst einen fatalen Fehler aus, wenn das System
symlink nicht unterstützt.
syscall LISTE
syscall ruft den Systembefehl auf, der als erstes Argument in LISTE spezifziert
wurde. Die restlichen Elemente in LISTE werden dem Systembefehl als Argumente
übergeben.
sysopen DATEIHANDLE, DATEINAME, MODUS
sysopen DATEIHANDLE, DATEINAME, MODUS, PERMS
Öffnet die in DATEINAME spezifizierte Datei und verbindet sie mit DATEIHANDLE. Wenn
die Datei noch nicht existiert, wird sie erzeugt.
sysread DATEIHANDLE, SKALAR, LAENGE, OFFSET
sysread DATEIHANDLE, SKALAR, LAENGE
Liest mit Hilfe des Systembefehls read(2) LAENGE-Bytes aus DATEIHANDLE in SKALAR
ein. Zurückgeliefert wird die Anzahl der eingelesenen Bytes oder undefined, wenn ein
Fehler auftrat. Verwenden Sie OFFSET, wenn Sie die eingelesenen Bytes nicht an den
Anfang des Strings, sondern eine um OFFSET-Bytes verschobene Position schreiben
wollen.
sysseek DATEIHANDLE, POSITION, VONWOAUS
Ähnlich der seek-Funkton. Allerdings wird der Systemaufruf lseek(2) anstelle von
fseek(2) verwendet.
system LISTE
Die system-Funktion entspricht dem Aufruf exec LISTE, mit der Ausnahme, dass sie
in einen neuen Prozeß verzweigt und in diesem Prozeß die Befehle in LISTE ausführt
und dann zurückkehrt.
syswrite DATEIHANDLE, SKALAR, LAENGE, OFFSET
syswrite DATEIHANDLE, SKALAR, LAENGE
syswrite versucht mit Hilfe des Systemaufrufs write(2) LAENGE-Bytes der Daten aus
der Variablen SKALAR in DATEIHANDLE zu schreiben. Zurückgeliefert wird die Anzahl
der geschriebenen Bytes oder, im Falle eines Fehlers, undefined.
tell DATEIHANDLE
tell liefert die aktuelle Position für das spezifizierte Datei-Handle zurück. Wenn kein
Datei-Handle angegeben wird, enthält der Rückgabewert die Position der zuletzt
gelesenen Datei.
telldir VERZEICHNISHANDLE
telldir liefert die aktuelle Position in dem angegeben Verzeichnis-Handle.
tie VARIABLE, KLASSENNAME, LISTE
tie bindet eine Variable an eine Paketklasse, die eine Implementierung für die
Variable bereitstellt. VARIABLE ist der Name der zu bindenden Variablen und
KLASSENNAME der Name der Klasse, die Objekte des korrekten Typs implementiert.
Alle zusätzlichen Argumente werden der new-Methode der Klasse übergeben.
tied VARIABLE
Falls VARIABLE an ein Paket gebunden ist, liefert tied eine Referenz auf das der
VARIABLE zugrundeliegende Objekt zurück. Ist die Variable nicht gebunden, lautet der
Rückgabewert undefined.
time
Die time-Funktion liefert die Anzahl an Sekunden zurück, die seit Beginn des
systemspezifischen Referenzdatums verstrichen sind. Dieser Zeitpunkt liegt auf den
meisten Systemen bei 00:00:00 UTC, 1. Januar, 1970 und auf dem Macintosh-
Betriebssystem bei 00:00:00 1. Januar 1904. Der zurückgelieferte Wert wird
meistens localtime oder gmtime zur Formatierung übergeben.
times
times liefert ein Array mit vier Elementen zurück, das den Benutzer und die
Systemzeiten für den aktuellen Prozeß und dessen Kinder enthält. Hier ein Beispiel:
($user, $system, $cuser, $csystem) = times;
truncate DATEIHANDLE, LAENGE
truncate AUSDRUCK, LAENGE
Verkürzt die Datei, die durch DATEIHANDLE oder AUSDRUCK spezifiziert wurde, auf die in
LAENGE definierte Länge. Wenn truncate auf dem System nicht implementiert ist,
wird ein fataler Fehler ausgelöst.
uc AUSDRUCK
Im Gegensatz zu lc, das alle Buchstaben in einem String in Kleinbuchstaben
konvertiert, konvertiert uc alle Buchstaben eines Strings in Großbuchstaben.
ucfirst AUSDRUCK
Liefert AUSDRUCK zurück, nachdem das erste Zeichen in einen Großbuchstaben
konvertiert wurde.
umask AUSDRUCK
umask wird verwendet, um die Standard-umask-Maske für den Prozeß zu setzen. Die
Funktion übernimmt eine Oktalzahl (keinen String von Ziffern). Die Funktion umask ist
nützlich, wenn Ihr Programm eine Reihe von Dateien erzeugt. Wenn AUSDRUCK
fortgelassen wird, liefert umask die aktuelle umask-Maske zurück.
undef AUSDRUCK
undef wird verwendet, um den Wert einer Variablen zu löschen. Die Funktion kann
auf einer Skalarvariablen, einem ganzen Array oder einem ganzen Hash angewendet
werden.
unlink (LISTE)
unlink löscht die Dateien, die ihr via LISTE übergeben wurden. Rückgabewert ist die
Anzahl der Dateien, die erfolgreich gelöscht wurden. Wurde unlink keine Liste
übergeben, wird $_ als Argument verwendet.
unpack SCHABLONE, AUSDRUCK
unpack ist das Gegenstück zu pack. Sie übernimmt eine Datenstruktur und übersetzt
sie in eine Liste, die auf einer SCHABLONE basiert. Das SCHABLONEN-Format ist das
gleiche wie für pack.
unshift ARRAY, LISTE
Die unshift-Funktion fügt einen skalaren Wert als das erste Element in ein Array ein
und verschiebt die Indizes aller folgenden Elemente im Array um eins.
utime LISTE
utime ist das Perl-Äquivalent zu dem Unix-Befehl touch. Die Funktion setzt die
Zugriffs- und Änderungszeiten für eine Liste von Dateien. Die ersten zwei Argumente
müssen die numerischen Zugriffs- und Änderungszeiten für die Dateien enthalten. Bei
allen folgenden Argumenten wird davon ausgegangen, dass es sich um Dateien
handelt, deren Zugriffs- und Änderungszeiten geändert werden sollen. Die Funktion
liefert die Zahl der Dateien zurück, die erfolgreich bearbeitet wurden.
values HASH
Diese Funktion liefert ein Array zurück, das die Werte (values) für die Elemente aus
einem Hash enthält. Die Funktion ist damit das Pendant der Funktion keys, die ein
Array der Schlüssel aus einem Hash zurückliefert.
vec AUSDRUCK, OFFSET, BITS
vec behandelt einen String (spezifiziert in AUSDRUCK) als einen Vektor von
vorzeichenlosen Integerwerten und liefert den Wert des von OFFSET spezifizierten
Bitfeldes zurück.
wait
wait wartet einfach auf das Ende eines Kindprozesses und liefert dann die PID dieses
Prozesses zurück.
waitpid PID, FLAGS
Die Funktion waitpid wartet darauf, dass ein bestimmter Kindprozeß (spezifiziert in
PID) beendet wird, und liefert dann die Prozeß-ID für den toten Prozeß zurück.
wantarray
wantarray liefert wahr zurück, wenn der Kontext der gerade ausgeführten Subroutine
einen Listenwert benötigt. Wenn die Funktion in einem skalaren oder leeren Kontext
aufgerufen wird, liefert sie falsch zurück. Um zu vermeiden, dass die ganze Subroutine
ausgeführt wird, können Sie folgende Anweisung verwenden, die sicherstellt, dass die
Subroutine in einem Listenkontext aufgerufen wurde:
return unless defined wantarray;
warn LISTE
warn wird verwendet, um eine Nachricht an die Standardfehlerausgabe zu schicken,
ohne dass dabei das Programm beendet wird. Abgesehen von der Tatsache, dass das
Programm die Ausführung nicht unterbricht, entspricht diese Funktion der Funktion
die.
write DATEIHANDLE
Die write-Funktion wird verwendet, um Daten mit Hilfe einer Schablone auszugeben,
die mit der format-Funktion definiert wurde. Weitere Informationen hierzu
entnehmen Sie bitte der perlform-Manpage.




